package com.stylefeng.guns.modular.system.model;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 系统角色表
 * </p>
 *
 * @author stylefeng
 * @since 2018-08-30
 */
@Data
@EqualsAndHashCode(callSuper=true)
@ApiModel(value="用户角色",description="用户角色")
@TableName("sys_role_cw")
public class RoleCw extends Model<RoleCw> {

    private static final long serialVersionUID = 1L;

    /**
     * 角色编号
     */
    @TableId(value="sr_id",type= IdType.AUTO)
    @ApiModelProperty(value = "角色编号",name = "srId",notes = "系统编号(自增:系统维护)")
    @JsonProperty(value = "srId")
    private String srId;
    /**
     * 角色名
     */
    @TableField("sr_name")
    @JsonProperty(value = "srName")
    @ApiModelProperty(value = "角色名",name = "srName",notes = "角色名(必填)",required = true)
    @NotNull(message = "角色名不能为空")
    private String srName;
    /**
     * 角色编码
     */
    @TableField("sr_code")
    @JsonProperty(value = "srCode")
    @ApiModelProperty(value = "角色编码",name = "srCode",notes = "角色编码(必填)",required = true)
    @NotNull(message = "角色编码不能为空")
    private String srCode;
    /**
     * 所属机构
     */
    @TableField("so_id")
    @JsonProperty(value = "soId")
    @ApiModelProperty(value = "所属机构",name = "soId",notes = "所属机构ID(必填)",required = true)
    @NotNull(message = "所属机构不能为空")
    private Integer soId;
    /**
     * 创建时间
     */
    @TableField("create_time")
    @JsonProperty(value = "createTime")
    @ApiModelProperty(value = "创建时间",name = "createTime",notes = "创建时间(系统维护)",hidden=true)
    private Date createTime;
    /**
     * 创建人
     */
    @TableField("create_user")
    @JsonProperty(value = "createUser")
    @ApiModelProperty(value="创建人",name="createUser",hidden=true)
    private String createUser;
    /**
     * 修改人
     */
    @TableField("update_user")
    @JsonProperty(value = "updateUser")
    @ApiModelProperty(value="修改人",name="updateUser",hidden=true)
    private String updateUser;
    /**
     * 修改时间
     */
    @TableField("update_time")
    @JsonProperty(value = "updateTime")
    @ApiModelProperty(value="修改时间",name="updateTime",hidden=true)
    private Date updateTime;
    /**
     * 显示顺序
     */
    @TableField("sr_sort")
    @ApiModelProperty(value="显示顺序",name="srSort")
    @JsonProperty(value = "srSort")
    private Integer srSort;
    /**
     * 0手动加入 1 自动导入（不能删除）
     */
    @TableField("sr_source")
    @ApiModelProperty(value="来源(0:手动加入 1:自动导入)",name="srSource",notes = "来源(0:手动加入 1:自动导入)")
    @JsonProperty(value = "srSource")
    private String srSource;
    /**
     * 模板ID
     */
    @TableField("src_temId")
    @JsonProperty(value = "srcTemId")
    @ApiModelProperty(value="模板ID",name="srcTemId",notes = "机构分类角色模板ID")
    private Integer srcTemId;


    @Override
    protected Serializable pkVal() {
        return this.srId;
    }

 }
